package cn.genmer.test.security.utils;
 
 
/**
 * @ClassName Under
 * @Description TODO
 * @Author liuhaihua
 * @Date 2021/1/13 18:23
 * @Version 1.0
 */
public class Under {
  /**
   * 功能：驼峰命名转下划线命名
   * 小写和大写紧挨一起的地方,加上分隔符,然后全部转小写
   */
  public static String camel2under(String c)
  {
    String separator = "_";
    c = c.replaceAll("([a-z])([A-Z])", "$1"+separator+"$2").toLowerCase();
    return c;
  }
  /**
   * 功能：下划线命名转驼峰命名
   * 将下划线替换为空格,将字符串根据空格分割成数组,再将每个单词首字母大写
   * @param s
   * @return
   */
  private static String under2camel(String s)
  {
    String separator = "_";
    String under="";
    s = s.toLowerCase().replace(separator, " ");
    String sarr[]=s.split(" ");
    for(int i=0;i<sarr.length;i++)
    {
      String w = "";
      if (i==0) w=sarr[i].substring(0,1).toLowerCase()+sarr[i].substring(1);
      else
      w=sarr[i].substring(0,1).toUpperCase()+sarr[i].substring(1);

      under +=w;
    }
    return under;
  }
 
 
  /**
   * 测试
   * @param args
   */
  public static  void main(String[] args){
    String c="townPickUpNum";
    System.out.println("驼峰命名转下划线命名"+camel2under(c));
    String s="outer_sign_point_num";
    System.out.println("下划线命名转驼峰命名"+under2camel(s));
  }
 
 
}
 
 